package com.sapitest.keywords;

import com.sapitest.utils.redis.Redis;
import org.testng.Reporter;

/**
 * Redis连接操作关键字封装类
 * @date 2019-01-13
 * @author Liuxu
 * @version 1.0.0
 * @since jdk1.8
 */
public class RedisOperation {

    /**
     * 执行redis命令，并将结果返回，正常情况返回执行结果字符串，异常情况返回 null
     * @param host  redis host
     * @param pwd   redis password，没有密码入参 null
     * @param port  redis port
     * @param command  redis的命令，例如get,set,hget,hset等
     * @param parameters  redis的命令的参数，可以0个，1个或者多个
     * @return  命令执行的结果以String类型返回
     */
    public <T> T redisHandle(String host, String pwd, int port, String command, String... parameters){
        Redis redis = Redis.newInstance(host, pwd, port);
        Reporter.log("执行Redis结果：" + redis.execCommand(command, parameters), true);
        return redis.execCommand(command, parameters);
    }
}
